package com.ruoyi.caiwu.utils;

import com.alibaba.cloud.commons.lang.StringUtils;

import java.math.BigDecimal;

/**
 * bigdecimal相关共通
 * @author fl
 */
public class BigdecimalUtils {
	
	/**
	 * 两个BigDecimal 求和
	 * @param cashableAmount
	 * @param confirmAmount
	 * @return
	 */
	public static BigDecimal amountSum(BigDecimal obj1, BigDecimal obj2) {
		if (obj1 == null && obj2 == null) return BigDecimal.ZERO;
		if (obj1 == null) {
			return obj2;
		} else if (obj2 == null) {
			return obj1;
		} else {
			return obj1.add(obj2);
		}
	}

	/**
	 * 返回obj1 - obj2
	 * 减完的结果>=0，小于0的时候，全部按0返回
	 * @param obj1
	 * @param obj2
	 * @return
	 */
	public static  BigDecimal amountSub(BigDecimal obj1, BigDecimal obj2) {
		
		if (obj1 == null) {
			return BigDecimal.ZERO;
		}
		
		if (obj2 == null) {
			return obj1;
		} else {
			BigDecimal subResult = obj1.subtract(obj2);
			if (subResult.compareTo(BigDecimal.ZERO) < 0) {
				return BigDecimal.ZERO;
			} else {
				return subResult;
			}
		}
	}
	
	/**
	 * 比较两个数值是否相等
	 */
	public static boolean isEqualInTwoBigdecimal(BigDecimal obj1, BigDecimal obj2) {
		if (obj1 == null && obj2 == null) {
			return true;
		} else if (obj1 != null && obj2 != null) {
			return obj1.compareTo(obj2) == 0;
		} else {
			return false;
		}
	}
	
	/**
	 * str2BigDecimal, 为空的时候返回null
	 */
	public static BigDecimal str2BigDecimal(String obj1) {
		if (StringUtils.isBlank(obj1)) {
			return null;
		} else {
			return new BigDecimal(obj1);
		} 
	}
	
}
